Users of mobile communication devices often need to retrieve data from a database. For example, a user may want to place a phone call and needs to retrieve the phone number from a contact database stored in his mobile phone; or he may want to navigate by car to a restaurant and needs to retrieve data from a database of a navigation service that is accessible via the mobile network.
Retrieval of data from a database often requires entering a text string to be interpreted by an application program, such as a phone dialer or a navigation program. In response, the application program identifies records from the database that match the entered string, and presents the identified records to the user for selection or approval. Upon receiving the user selection or approval, the application program performs an action, such as dialing a phone number or navigating to a desired destination.
The small size of many mobile devices affords only small-sized keypad and screen. Many mobile devices feature a touchscreen whose small area is shared between keypad and display functionalities. Many users of mobile devices find it difficult to read the tiny soft keys displayed on the screen and to accurately tap the desired keys. Such difficulties are further increased when the mobile device is used when driving a car, for example for placing a phone call or navigating to a desired destination, in which case text data entry becomes not only inconvenient but also unsafe.
Voice commands offer a relatively convenient and safe alternative to key stroke entry for some users, while other users find voice commands inaccurate and frustrating to use. Therefore, it would be advantageous to have a more convenient and safer way to enter text into a mobile device for retrieving data from a database.